home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 9
/
Night Owl CD-ROM (NOPV9) (Night Owl Publisher) (1993).ISO
/
009a
/
snpd0493.zip
/
HEXDUMP.C
< prev
next >
Wrap
Text File
|
1993-04-05
|
2KB
|
70 lines
.I 0 6
/*
** HEXDUMP.C - Dump a file.
**
** This Program Written By Paul Edwards w/ modifications by Bob Stout
** Released to the public domain
*/
.D 1 11
.I 17 2
static void dodump(FILE *fp, long start, long count);
static void skipb(FILE *fp, long start);
.D 18 2
.I 23 1
long start, count;
.D 24 1
.I 27 1
puts("Usage: HEXDUMP file_name [start] [length]");
.D 28 1
.I 31 2
start = atol(*(argv + 2));
else start = 0L;
.D 32 2
.I 34 3
count = atol(*(argv + 3));
else count = -1L;
fp = fopen(*(argv + 1), "rb");
.D 35 3
.I 39 5
printf("unable to open file %s for input\n", *(argv+1));
return (EXIT_FAILURE);
}
skipb(fp, start);
dodump(fp, start, count);
.D 40 5
.I 47 4
static void dodump(FILE *fp, long start, long count)
{
int c, pos1, pos2;
long x = 0L;
.D 48 3
.I 57 1
sprintf(prtln,"%0.6X ", start + x);
.D 58 1
.I 61 1
sprintf(prtln + pos1, "%0.2X", c);
.D 62 1
.I 63 3
sprintf(prtln + pos2, "%c", c);
else sprintf(prtln + pos2, ".");
pos1 += 2;
.D 64 3
.I 68 4
if (x % 4 == 3)
*(prtln + pos1++) = ' ';
if (x % 16 == 15)
printf("%s\n", prtln);
.D 69 4
.I 74 10
if (x % 16 != 15)
printf("%s\n", prtln);
return;
}
static void skipb(FILE *fp, long start)
{
long x = 0;
if (start == 0)
.D 75 10